The present invention relates to automatic object recognition by use of a machine, and more particularly to real time object recognition and inspection through extraction of digital features from an object under analysis.
In the prior art, it is known to use pattern recognition to attempt to match an image of an object to each of a plurality of stored images to determine the type of object under analysis. Such prior art systems typically fail to adequately recognize an object under analysis when the object has an orientation (translational, or rotational) different from the standard object, or the object includes features or variations that are not part of the standard object.
Transforming and transmitting electronic images has been accomplished for many years. A field of endeavor known as artificial intelligence has been applied to processing of electronic images to recognize, classify, or identify complex objects. Unfortunately, the artificial intelligence is limited and application of the technology has been problematic, particularly when visual images to be considered are blurred, partially obscured, or not entirely geometric, or the visual image includes a background that is confusing or noisy.
In the prior art, it is known to use a programming approach wherein a set of software tools is applied to the visual image (e.g., edge enhancers, movement detectors, Fourier transforms, etc.) to help discern the objects. Such systems usually require the objects to be fairly xe2x80x9ccleanxe2x80x9d in order for the applied software tools to produce acceptable results. This processing is not performed in real time.
Another solution has been development and application of neural networks wherein the complex objects to be recognized are learned through use of a training process. Subsequent exposure of the complex object, or another object matching the complex object, to the recognition system results in identification of the complex object. Neural networks, for better or worse, are able to learn differences and nuances of a reference object that a programmer may not have anticipated.
The present invention provides for a method and apparatus for reliably identifying an input object and comparing the input object against a representation of a standard object to determine whether the input object matches the standard object. Use of the present invention permits development of a recognition system that is faster per unit cost than present designs of neural network systems. Additionally, the present invention offers similar advantages to the neural network approach, specifically object training and learning without use of programming tools.
The method and apparatus of the preferred embodiment provides for a real time object recognition system that is robust and flexible in its ability to learn a reference object and to thereafter discriminate the object against unfavorable objects or backgrounds. The system is able to properly identify input objects having orientational, positional, or enhancements and modifications that differ from the parameters of the reference object when the learning occurred.
According to one aspect of the present invention, a preferred embodiment includes a method for recognizing an object. The method includes the steps of forming a first digital characterization of the object by capturing a first plurality of digital features from the object; storing the first digital characterization of the object into a memory by writing, responsive to each one of the digital features of the first plurality of digital features, a first preselected value into an address location of the memory that is determined from the one digital feature; forming a second digital characterization of a second object by capturing a second plurality of digital features from the second object; and comparing the second digital characterization to the first digital characterization by reading, for each one digital feature of the second plurality of features, a second plurality of address locations of the memory that are determined from the second plurality of digital features to determine a number of the second plurality of address locations that have the first preselected value; and recognizing the second object as the object when the number exceeds a threshold value.
According to the preferred embodiment, video information from a television camera is thresholded to produce a stream of binary data. The stream is saved and moved into a series of shift registers in order to extract sub-frames from it (e.g., a sub-frame may include a five pixel by five pixel region of the binary stream). The sub-frames represent a small moving region of interest extracted from the binary data stream. Binary information from each sub-frame is used (directly or after hashing) to address a large random access memory.
As the sub-frames are continuously generated from the video stream, the memory is also continuously addressed. Depending upon a particular mode of the object recognition system, different operations are occurring with respect to the accessing of the memory. The modes of operation include a learn mode, an ignore mode, a recognize mode, and an inspect mode.
In learn mode, a desirable reference object is placed in the field-of-view of the camera, and a binary xe2x80x9c1xe2x80x9d is written into the memory at those addresses corresponding to the addresses generated from the sub-frames. In ignore mode, an undesirable reference object is placed in the field-of-view and a binary xe2x80x9c0xe2x80x9d is written to the memory at addresses generated from sub-frames processed while in ignore mode. In recognize mode, an object under analysis is placed in the field-of-view and addresses generated from the sub-frames are used to read the memory. If the value stored is a binary xe2x80x9c1xe2x80x9d then a counter is incremented.
If the counter exceeds a preselected decision threshold limit in a prespecified period (typically after the sub-frames of the object under analysis have all been processed at least once), a signal indicating a match is generated. Otherwise, a no match condition is indicated.
In inspect mode, the system is trained using a non-defective part in learn mode. During inspect mode, parts to be inspected are processed and the memory is read using addresses generated from the inspected parts similar to the recognize mode. A binary xe2x80x9c0xe2x80x9d , read from memory during inspect mode, indicates a variation from the standard reference object. For each part, if the count of binary xe2x80x9c0""sxe2x80x9d exceeds a decision criterion, then the part fails inspection and is identified as a non-conforming part.
Reference to the remaining portions of the specification, including the drawing and claims, will realize other features and advantages of the present invention. Further features and advantages of the present invention, as well as the structure and operation of various embodiments of the present invention, are described in detail below with respect to accompanying drawing. In the drawing, like reference numbers indicate identical or functionally similar elements.